package org.example.HttpClient.HttpInterface;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.http.NameValuePair;
import org.example.HttpClient.HttpInterface.interceptorsInterface.HttpEventProcessing;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

public interface HttpController extends HttpEventProcessing {
    HttpController setHeader(Map<String, String> header);
    HttpController setParameter(Map<String, String> parameter);
    HttpController setBody(List<? extends NameValuePair> Data);
    HttpController setJsonBody(String Key,Object Data) throws JsonProcessingException;
    HttpController setHeader(Object header) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException;
    HttpController setParameter(Object parameter) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException;
    void AsyncRun();
    void Run();
}
